תכנון אלגוריתמים, אביב 2010, תרגול מס' 7 סריקה לעומק, מיון טופולוגי, רכיבים קשירים היטב. time time 1

Similar documents
קשירות.s,t V שני צמתים,G=(V,E) קלט: גרף מכוון מ- s t ל- t ; אחרת.0 אם יש מסלול מכוון פלט: הערה: הגרף נתון בייצוג של רשימות סמיכות.

Depth-First Search DFS

תרגול מס' 01 אלגוריתם דיניץ

קובץ שאלות פתורות אביב 2102

מבני נתונים תרגיל 4 פתרון

מבני נתונים תרגיל 5 שאלות לגבי העבודה יש להעלות בפורום של הקורס או בשעות הקבלה של המרצה או המתרגל האחראיים על העבודה.

סיכום מבני נתונים )שיעור( מרצה: אלכס סמורודניצקי. להערות: אמיר נווה

Practical Session No. 13 Amortized Analysis, Union/Find

הקיטסיגול הרבחה יעדמל בלושמה גוחה

תרגול 8. Hash Tables

סיבוכיות זמן ריצה רדוקציות ושלמות ב- NP המחלקה P הגדרה: = המחלקה NP הגדרה: שפה סגירות שפות הגדרה: רדוקציה

חזרה, מיונים פולינה לוצקר

זו מערכת ישרת זוית )קרטזית( אשר בה יש לנו 2 צירים מאונכים זה לזה. באותו מישור ניתן להגדיר נקודה על ידי זוית ורדיוס וקטור

תצוגת LCD חיבור התצוגה לבקר. (Liquid Crystal Display) המערכת.

. s בנוסף, המרחק בקשתות על העץ מ- s לכל צומת ב- R הוא מינימאלי. נותן פיתרון ל: מציאת מסלול קצר ביותר מהמקור לכל צומת. גלוי צמתים ברי הגעה מהמקור.

Rules Game (through lesson 30) by Nancy Decker Preparation: 1. Each rule board is immediately followed by at least three cards containing examples of

מכונת מצבים סופית תרגול מס' 4. Moshe Malka & Ben lee Volk

שאלה ) 1 מבחינה של פרופ' נוגה אלון ( G V עם משקלים על הקשתות, ונתון עץ פורש מינימלי של G. נניח

A R E Y O U R E A L L Y A W A K E?

מ ש ר ד ה ח י נ ו ך ה פ ד ג ו ג י ת א ש כ ו ל מ ד ע י ם על ה ו ר א ת ה מ ת מ ט י ק ה מחוון למבחן מפמ"ר לכיתה ט', רמה מצומצמת , תשע"ב טור א'

עץ תורשה מוגדר כך:שורש או שורש ושני בנים שכל אחד מהם עץ תורשה,כך שערך השורש גדול או שווה לסכום הנכדים(נכד-הוא רק בן של בן) נתון העץ הבא:

אלגוריתמים 1 דפי עזר

מבוא לתכנות ב- JAVA תרגול 7

הגדרה: משפחת עצים תקרא מאוזנת אם (n.h(t) = O(log

מושגים בסיסיים תלמידים והורים יקרים,

טכנולוגיית WPF מספקת למפתחים מודל תכנות מאוחד לחוויית בניית יישומיי

ASP.Net MVC + Entity Framework Code First.

Hebrew Ulpan HEB Young Judaea Year Course in Israel American Jewish University College Initiative

יסודות מבני נתונים. תרגול :9 ערימה - Heap

פרק מיון וחיפוש - לשם מה? הגדרה

THINKING ABOUT REST THE ORIGIN OF SHABBOS

המבנה הגאומטרי של מידה

שאלות חזרה לקראת מבחן מפמ"ר אינטרנט וסייבר

Advisor Copy. Welcome the NCSYers to your session. Feel free to try a quick icebreaker to learn their names.

4...Informed Search Strategies Partial Order Planning 29...Hierarchical Decomposition Reenforcement Learning 40...Unsupervised Learning

שנת לימודים סמסטר מועד ניתן בתאריך מרצה מתרגל שאלות. 0, 3 r. n ויהי : 2 איתי בארלי גרסה / /1/14 פרופ' אהוד לרר איתי בארלי. a.

ניפוי שגיאות )Debug( מאת ישראל אברמוביץ

תרגול 11 תור עץ חיפוש בינארי

תכנית סטארט עמותת יכולות, בשיתוף משרד החינוך א נ ג ל י ת שאלון א' Corresponds with Module A (Without Access to Information from Spoken Texts) גרסה א'

מבחן באנגלית בהצלחה הצלחה!!! שם פרטי: שם משפחה: מס' תעודת זהות: תאריך: שם מרכז מנהל מרכז השכלה: תאריך בדיקת המבחן: כל הזכויות שמורות למשרד החינוך

בעיית שיבוץ משימות.J כל משימה j J מאופיינת על הקלט: קבוצת משימות.t(j) s(j) וזמן סיום ידי זמן התחלה J J של משימות לא חופפות בזמן, הפלט: תת-קבוצה שהיא מ

מספר השאלון: Thinking Skills נספח: כישורי חשיבה )לפרק ראשון ושני( א נ ג ל י ת (MODULE F) ספרות )מילון הראפס אנגלי-אנגלי-ערבי(

A JEW WALKS INTO A BAR: JEWISH IDENTITY IN NOT SUCH JEWISH PLACES

תוכן העניינים: פרק סדרות סיכום תכונות הסדרה החשבונית:... 2 תשובות סופיות:...8 סיכום תכונות הסדרה ההנדסית:...10

א נ ג ל י ת בהצלחה! ב. משרד החינוך בגרות לנבחנים אקסטרניים )מילון הראפס אנגלי-אנגלי-ערבי( השימוש במילון אחר טעון אישור הפיקוח על הוראת האנגלית.

Relationships: Everything Else is Commentary

אנגלית (MODULE E) בהצלחה!

הקיטסיגול הרבחה יעדמל בלושמה גוחה

תכנית סטארט עמותת יכולות, בשיתוף משרד החינוך א נ ג ל י ת שאלון ב' Corresponds with Module B גרסה ב' הוראות לנבחן

Expressions (ex 8) Wild World (ex 7) Cars (ex 9)

שאלון ו' הוראות לנבחן

נספח: כישורי חשיבה )לפרק ראשון ושני( אנגלית (MODULE F) ספרות או: מילון אנגלי-ערבי / ערבי-אנגלי או: מילון אנגלי-אנגלי-ערבי

Computer Structure. Exercise #1 יש להגיש את התשובות הסופיות על גבי טופס זה.

נספח: כישורי חשיבה )לפרק ראשון ושני( אנגלית (MODULE F) ספרות מילון אנגלי-אנגלי-עברי או מילון אנגלי-עברי-עברי-אנגלי

בהצלחה! (MODULE C) Hoffman, Y. (2014). The Universal English-Hebrew, Hebrew-English Dictionary

שאלון ד' הוראות לנבחן

לצפייה בפתרון בווידאו לתרגילים שבחוברת, כנסו ל "סטטיסטיקה והסתברות" בשאלון 802 שבאתר

Hebrew Adjectives. Hebrew Adjectives fall into 3 categories: Attributive Predicative Substantive

FILED: NEW YORK COUNTY CLERK 07/16/2014 INDEX NO /2014 NYSCEF DOC. NO. 102 RECEIVED NYSCEF: 07/16/2014 EXHIBIT 5

Name Page 1 of 6. דף ט: This week s bechina starts at the two dots in the middle of

הטכנולוגיה בחינוך ד ר קובי גל אוניברסיטת בן גוריון בנגב

מספר השאלון: הצעת תשובות לשאלות בחינת הבגרות אנגלית (MODULE C) מילון אנגלי-אנגלי-עברי או מילון אנגלי-עברי-עברי-אנגלי قاموس إنجليزي - إنجليزي - عربي

DNS פרק 4 ג' ברק גונן מבוסס על ספר הלימוד "רשתות מחשבים" עומר רוזנבוים 1

אנגלית ספרות בהצלחה! /המשך מעבר לדף/ נספח: כישורי חשיבה )לפרק ראשון ושני( או: מילון אנגלי-ערבי / ערבי-אנגלי או: מילון אנגלי-אנגלי-ערבי

שאלון ו' הוראות לנבחן

FILED: NEW YORK COUNTY CLERK 07/16/2014 INDEX NO /2014 NYSCEF DOC. NO. 134 RECEIVED NYSCEF: 07/16/2014 EXHIBIT 37

אנגלית שאלון ז' (MODULE G) ג רסה א' הוראות לנבחן )מילון אנגלי-ערבי / ערבי-אנגלי )

SEEDS OF GREATNESS MINING THROUGH THE STORY OF MOSHE S CHILDHOOD

P NP DTIME( nc ) :,A p B

ãówh,é ËÓÉÔê ÌW W É Å t" Y w f É ËÓÉÑ É èw É f Ñ u ð NNM YóQ' ÌW W É Y ÉgO d óqk É w f ym Éd É u ð NNM ÌWNQMH uqo ð NNM ÌWNQMH

Patents Basics. Yehuda Binder. (For copies contact:

מספר ת"ז: יש לסמן את התשובה הטובה ביותר בתשובון. לא יינתן ניקוד על סימון תשובה בטופס הבחינה או במחברת הבחינה.

מבוא למחשב בשפת פייתון

אנגלית שאלון ז' ג רסה א' הוראות לנבחן בהצלחה! )4( ההנחיות בשאלון זה מנוסחות בלשון זכר ומכוונות לנבחנות ולנבחנים כאחד. (MODULE G)

ANNEXURE "E1-1" FORM OF IRREVOCABLE STANDBY LETTER OF CREDIT PERFORMANCE OF CONTRACT (WHERE PRICES ARE NOT LINKED TO AN ESCALATION FORMULA)

A Long Line for a Shorter Wait at the Supermarket

פתרון בעיית צביעת הגרפים בעזרת אלגוריתם גנטי ואלגוריתמי Beam-Search

תורשכ ירפס לכ ץבוק " ב י קלח יללכ רעש

12:34 PM. Josh. Can t believe there were so many people at that party soooooo much fun!

נספח: כישורי חשיבה )לפרק ראשון ושני( אנגלית (MODULE D) ספרות מילון אנגלי-אנגלי-עברי או מילון אנגלי-עברי-עברי-אנגלי

BEAUTY AND UGLINESS. Global Day of Jewish Learning: Curriculum. A Project of the Aleph Society

נספח: כישורי חשיבה )לפרק ראשון ושני( אנגלית (MODULE D) ספרות או מילון אנגלי-עברי-עברי-אנגלי

מדינת ישראל משרד החינוך המזכירות הפדגוגית אגף מדעים הפיקוח על הוראת המתמטיקה

נספח: כישורי חשיבה )לפרק ראשון ושני( אנגלית (MODULE D) ספרות או מילון אנגלי-עברי-עברי-אנגלי

A lot of the time when people think about Shabbat they focus very heavily on the things they CAN T do.

מבוא לרשתות - תרגול מס' 11 Transparent Bridges

SHABBOS, 10 TAMMUZ, 5778

L fi-kach Nivrah Adam Yehidi! That is why Adam was created all alone!

(MODULE E) ב ה צ ל ח ה!

NATIONAL COUNCIL OF YOUNG ISRAEL. Shavuot Nation JEWISH EDITION. Compiled by Gabi Weinberg Teen Program Director

The Connection between Town Planning, Public Taking (Appropriation) and Land Appraisal

1. מספרים מרוכבים צורות אלגברית ווקטורית של מספרים מרוכבים. הוא זוג סדור. הגדרה 1.1. מספר מרוכב z של מספרים ממשיים. ו- y

Global Day of Jewish Learning

ALEPH-TAU Hebrew School Lesson 204 (Nouns & Verbs-Masculine)

פרק יעילות היעילות של קריטריון המקום עוסק בנושאים דומים לאלה של קריטריון הזמן. אנו נתרכז בחישובי היעילות של מדד הזמן.

הצעת תשובות לשאלות בחינת הבגרות אנגלית

Reflection Session: Sustainability and Me

eriktology The Writings Book of Ecclesiastes [1]

סה"כ נקודות סה"כ 31 נקודות סה"כ 21 תוכן עניינים של פתרון המבחן. לולאת for )נתון אלגוריתם... מעקב, פלט

Global Day of Jewish Learning

Transcription:

תרגול מספר 7 סריקה לעומק, מיון טופולוגי, רכיבים קשירים היטב DFS() 1 For each vertex u V[ ] 2 color[ WHITE 3 [ NIL 4 time 0 5 For each vertex u V[ ] 6 If color[ WHITEthen 7 DFS-VISIT( u ) DFS-VISIT(u) 1 color[ RAY 2 time time 1 3 d[ time 4 For each vertex v Adj[u ] 5 If color[ v] WHITE then 6 [ v] u 7 DFS-VISIT( v ) 8 color[ BLACK 9 f [ time time 1 TOPOLOICAL-SORT() 1 Call DFS() to compute finishing times fv [] for each vertex v. 2 If no bac edge has been discovered during the DFS procedure, then return v i,..., v 1 in where f [ vi 1 ]... f [ v in ]. 3 Else return is a cyclic graph!. תזכורת: סריקת DFS על גרף מכוון מסווגת את קשתות הגרף לקשתות עץ, אחורה, קדימה וחוצות. סריקת DFS על גרף לא מכוון מסווגת את קשתות הגרף לקשתות עץ וקשתות אחורה. v, v V תרגיל לחימום: נתון גרף מכוון E) ( V, וקודקוד הקודקוד האחרון במיון. מה ניתן לומר על v? שבכל כך מיון טופולוגי של קודקודי הגרף הוא ב-. ל- v קיים מסלול מ- u, u V ב-. ל- u לא קיים מסלול מ- v, u V תשובה: לכל א. לכל ב. 1 הוכחה: א. ב. נניח בשלילה כי קיים קודקוד u כך שאין מסלול מ- u ל- v ב-. נתבונן במיון טופולוגי המבוסס על סריקת DFS המתחילה ב- u. בסריקה זו u יצבע בשחור לפני גילוי v, ובפרט [u f [ ולכן u יופיע לאחר v במיון הטופול וגי- לפני צביעת v בשחור, כלומר v] f [ סתירה. v ל- u ב-. נתבונן במיון טופולוגי u כך שיש מסלול מ- נניח בשלילה כי קיים קודקוד v u יצבע בשחור לפני צביעת DFS המתחילה ב- v. בסריקה זו המבוסס על סריקת ולכן u יופיע לאחר v במיון הטופולוגי- סתירה. [u f [ בשחור, כלומר v] f [

בעיית הכיתה המופרעת:. לכל תלמיד קיימת קבוצה בכיתה מסוימת נוהגים התלמידים להשליך מטוסי נייר אחד על השני, ולא רוצה להסתבך )משאר התלמידים הוא מפחד עליהם הוא משליך מטוסים של תלמידים איתם(, במידה והשורה בה יושב התלמיד המשליך רחוקה יותר מהלוח מאשר השורה בה יושבת מטרתו או ששניהם יושבים באותה השורה. של תלמידי הכיתה הוא הושבה של התלמידים באופן כזה בו אף מטוס לא יושלך סידור חוקי במהלך השיעור. סידור אופטימאלי הוא סידור חוקי בעל מספר מינימאלי של שורות. הערה: ניתן להניח ששורות הכיתה אינן מוגבלות במספר מקומות ישיבה. בהינתן מופע לבעיה, נרצה לענות על שתי השאלות: האם קיים סידור חוקי של תלמידי הכיתה? )בעיית החוקיות, או פיסיביליות( במידה וקיים סידור חוקי, מהו הסידור האופטימאלי? )בעיית האופטימיזציה( הציעו אלגוריתם לפתרון בעיית קיום סידור חוקי, ובעיית מציאת סידור אופטימאלי. את בעיה זו נפתור ע"י שימוש במושגים מתורת הגרפים. נתאר את הכיתה על ידי הגרף המכוון (E, (,V כאשר וקיימת צלע )מכוונת( V ( u, v) E היא קבוצת ה תלמידים בכיתה, אם התלמיד u ישליך מטוסים על ה תלמיד v )במידה ו- v ישב, לפני u או באותה השורה שלו(. הבהרה: נשתמש באותם השמות עבור תלמידים וקודקודים המתאים לתלמיד x. כאשר קודקוד x הוא הקודקוד פתרון בעיית קיום סידור חוקי: נריץ את האלגוריתם למיון טופולוגי על. אם ניתן למיין את קודקודי, אזי התשובה לבעיה היא "כן", אחרת התשובה היא "לא". הוכחת נכונות הפתרון: אם ניתן למיין את קודקודי לפי מיון טופולוגי, אזי נושיב את תלמדי הכיתה באופן הבא: בכל שורה ישב תלמיד יחיד, כך שבשורה הראשונה מהלוח ישב התלמיד המיוצג ע "י הקודקוד הראשון במיון, בשורה השנייה מהלוח התלמיד המיוצג ע "י הקודקוד השני במיון, וכן הלאה. אם תלמיד א' יכול לזרוק מטוס על תלמיד ב ', אזי קיימת צלע מכוונת בגרף מקודקוד א ' לעבר קודקוד ב ', ולכן קודקוד א ' מופיע במיון לפני קודקוד ב ', ומכאן תלמיד א' ישב לפני תלמיד ב' ולא יוכל לזרוק עליו מטוסים. אם לא קיים מיון טופולוגי, אזי בהכרח קיים מעגל בגרף, נסמנו ב -. C נניח בשלילה כי ניתן להושיב את התלמידים כך שלא v, v ) 1 i ( v, ) ( i i 1 v1 יזרקו מטוסים אחד על השני. התלמיד v i חייב לשבת לפני התלמיד v i 1 1 i )אחרת ישליך עליו מטוסים(. אך - v 1 סתירה. חייב לשבת לפני עבור כל 2

פתרון בעיית האופטימיזציה: נריץ את האלגוריתם למיון טופולוגי על. במידה וקיים מיון טופולוגי לקודקודי הגרף, נושיב את התלמידים באופן הבא: נאתחל line[ v] 1 לכל קודקוד v בגרף. הוכחת נכונות: נעבור על כל קודקוד v בגרף לפי סדר ההופעה במיון ונבצע:. max{, line[ v] 1} נעדכן ( v, u) E לכל סיום: נושיב כל תלמיד הקרובה ללוח(. בשורה x line[ x] )כאשר השורות נספרות החל מהשורה טענה עיקרית: הסידור המוחזר ע"י האלגוריתם הוא סידור חוקי בעל מספר שורות מינימאלי. v יכול לזרוק מטוסים על תלמיד הוכחת חוקיות הפתרון: כדי להראות שהפתרון המוחזר חוקי, עלינו להראות שאם תלמיד u. לפני תלמיד v אזי הושבנו את תלמיד u, 1: אבחנה נבחנת צלע האלגוריתם יכול לעדכן את ערך השדה עבור קודקוד u ( vu, ) הנכנסת ל-,u לפני u בסידור הטופולוגי לא יתבצעו שינוים בערך השדה מ- u בסידור הטופולוגי לא יוצאות צלעות ל- u(. כלשהו רק כאשר ולכן לאחר שהאלגוריתם יעבור על כל הקודקודים המופיעים )כיוון שמכל הקודקודים החל אבחנה 2: כל שינוי בערך השדה עבור קודקוד u כלשהו יכול רק להגדיל את ערכו. הוכחת החוקיות: יהיו v,u שני תלמידים. נשים לב כי אם תלמיד v יכול לזרוק מטוסים על תלמיד u, אזי קיימת בגרף צלע ), vu (, ולכן קודקוד v מופיע במיון לפני קודקוד u. לפי אבחנה 1, לאחר שהאלגוריתם יבחן את כל הקודקודים המופיעים לפני בנוסף, בשלב בחינת v השדה יכול רק לגדול חוקי. line[] v במיון, ערך השדה v יקבל ערך של לפחות יישאר קבוע.,line[ [v 1 ולפי אבחנה 2 ערך זה. הוכחת אופטימאליות הפתרון: לכן בהכרח בסיום ריצת האלגוריתם v], line[ והסידור המוחזר אכן. line[] טענת עזר: לכל תלמיד v, ולכל פתרון חוקי המושיב את תלמיד v בשורה l מתקיים v l הוכחת האופטימאליות : יהי L מספר השורות בהן הושיב האלגוריתם את ה תלמידים, ויהי v line[. לפי טענת העזר, עבור כל סידור חוקי בו יושב v בשורה l כלשהי, v] תלמיד המקיים L. L מכך עולה כי בכל סידור חוקי התלמידים יושבים בלכל הפחות L שורות, ולכן מתקיים l האלגוריתם החזיר פתרון אופטימאלי. 3

הוכחת טענת העזר: באינדוקציה שלמה על הקודקודים לפי סדר הופעתם במיון הטופולוגי. v 1 עבור בסיס: הקודקוד הראשון בסידור הטופולוגי- האלגוריתם מאתחל אבחנה 1 לא משתנה ערך זה בהמשך הריצה. מכיוון שבכל סידור חוקי כלשהי 1 הטענה מתקיימת. הנחה: נניח כי הטענה מתקיימת עבור כל קודקוד המופיע לפני הקודקוד line[ v ] 1 1 v 1. יושב ולפי בשורה בסידור, ונוכיח עבור צעד: יהי P סידור חוקי כלשהו אשר מושיב את נחלק לשני מקרים: לא קיימת צלע נכנסת ל- בשורה. line[ ] l. נראה כי l ערך ל-[ [ line מקודקוד כלשהו בגרף. לכן, השלב היחידי באלגוריתם בו יוכנס הוא שלב האתחול, וערך זה הוא 1. לכן בהכרח. 1 line[ v ] l קיימת צלע נכנסת ל- כך שערך line[ v'] האלגוריתם מחשב את ערך מקודקוד כלשהו בגרף. נסמן ב- ' v j j את קודקוד ממנו יוצאת צלע ל-. v' max arg line[ מקסימאלי. כלומר: v ]: ( v, v ) E v j V [ ] line ע"י בחירת הערך המקסימאלי מבין כל ערכי - line[ v] 1 עבור כל קודקוד v ממנו יוצאת צלע ל-,.]1[ line[ v ] line[ v '] 1 בהכרח לפני ' l נסמן ב- את השורה בה יושב ולכן מתקיים כי בסוף האלגוריתם v ' ]3[. מכאן נובע כי בסידור הטופולוגי 'l אזי l ב- P. ]2[, ומהנחת האינדוקציה נובע כי כיוון ש- ' v מופיע line[ v'] l'. line[ v ] line[ v'] 1 l' 1 l [1] [3] [2] * שאלה למחשבה: במידה וקיים סידור חוקי של תלמידי הכיתה, האם הוא בהכרח יחיד? 4

רכיבים קשירים היטב בגרף מכוון יהי (E (,V גרף מכוון. נגדיר את היחס R על קבוצת קודקודי הגרף המסמל "קשירות חזקה" באופן הבא: ( x, y) R אם קיים מסלול מ- x ל- y וגם קיים מסלול מ- y ל- x בגרף. ניתן להראות )בקלות( כי יחס זה הוא רפלקסיבי )אם מגדירים מסלול באורך 0 כמסלול מקודקוד לעצמו(, טרנזיטיבי וסימטרי, ולכן יחס שקילות. *תזכורת: חלוקה של קבוצה היא פרוק של הקבוצה לתת קבוצות זרות שאיחודן הוא הקבוצה כולה. יחס שקילות על קבוצה מגדיר חלוקה שלה, כך שכל תת קבוצה בחלוקה נקראת מחלקת שקילות, כל שני איברים באותה מחלקת שקילות עומדים ביחס, ואילו כל שני איברים ממחלקות שקילות שונות אינם עומדים ביחס. במקרה זה, R מגדיר חלוקה של V. כל מחלקת שקילות של היחס R נקראת "רכיב קשיר היטב" של הגרף, כאשר המשמעות היא שמכל קודקוד ברכיב קשיר היטב קיים מסלול לכל קודקוד אחר באותו הרכיב. הערה: בגרף מכוון, אין משמעות למושג קשירות שראינו בגרפים לא מכוונים אלא רק לקשירות היטב. למשל, בגרף הבא אין משמעות למשפט "הקודקודים הקיצונים קשירים", לעומת זאת, ניתן להגיד שבגרף התשתית המתאים, כלומר, בגרף המתקבל אחרי הורדת ה כיוונים של הקשתות, "הקודקודים הקיצונים קשירים". עתה נגדיר את גרף הרכיבים קשירים היטב של הגרף קודקודי )גרף מכוון(: הם הרכיבים הקשירים היטב של )מחלקות השקילות של היחס R(. קיימת צלע מקודקוד X לקודקוד Y ב- אם קיים קודקוד x ב- ברכיב המתאים ל- X וקודקוד ב-. ל- y שיש צלע מ- x כך ברכיב המתאים ל- Y, y באופן כללי, גרף רכיבי הקשירות הבא יתכן: הוא גרף מכוון חסר מעגלים, אך לא בהכרח עץ. הגרף 5

x Y X טענה 1: אם ק יים ב- מסלול מרכיב ברכיב X לכל קודקוד y ברכיב Y. הסבר )בציור(: Y לרכיב אזי קיים ב- מסלול מכל קודקוד X..... x y הערה: טענה 1 נכונה גם בכיוון ההפוך. נמקו! טענה 2: הגרף הוא גרף חסר מעגלים. הוכחה: נניח בשלילה כי קיים מעגל, ויהיו X ו- Y שני קודקודים שונים הנמצאים על המעגל. יהיו x ו- y קודקודים כלשהם מהרכיבים המתאימים ל- X ו- Y ב- בהתאמה. לפי ההנחה יש מסלול ב- מ- X ל- Y ולהיפך, ולכן, לפי טענה 1, יש מסלול ב- מ- x אל y ולהיפך. אזי x ו- y הם באותו רכיב קשירות, בסתירה לעובדה ש X ו- Y הם רכיבים שונים. בעיה )לקוחה ממועד א 2000(: יהי (E (,V גרף מכוון, שבו לכל קודקוד u V מותאם מספר.rating(u) נגדיר פונקציה: {קיים מסלול מ- u ל- v ב- best( (u max{rating( :(v v V, u V best( u) הראו כיצד ניתן לחשב גרף כללי. בזמן ליניארי את לכל עבור א. גרף חסר מעגלים, ב. עבור א. חסר מעגלים רעיון: נמיין את מיון טופולוגי )"גרף מכוון חסר מעגלים מהסוף להתחלה את שדות ה- best של הקדקודים. קיים מיון טופולוגי"(, ואז נעדכן האלגוריתם: אתחול: לכל קודקוד u נבצע: rating(u) best(u).1 נבצע מיון טופולוגי לקודקודי. 2. )כלומר, נעבור על רשימת הקדקודים הממוינת בסדר הפוך למיון הטופולוגי 3. ללא צלעות יוצאות(, ולכל קדקוד u נבצע: לכל v שכן של (u,v) ( u צלע בגרף( נבצע: אם best(v) best(u) < אז נעדכן best(v).best(u) נתחיל מקדקוד הסבר על נכונות האלגוריתם: כל פעם שנגיע לטפל בקדקוד חדש u בצעד 3 באלגוריתם, ערכי best(v) לכל v שאחרי u במיון הטופולוגי נכונים. ההוכחה באינדוקציה ונובעת מנכונות המיון הט ופולוגי )לא קיים מסלול מ- u לקדקוד שקודם לו במיון הטופולוגי ולכן לא יכול לתרום לערך ה- best של u ובאלגוריתם אנו מעדכנים את השדות של הקודקודים לפי סידורם במיון הטופולוגי מהסוף להתחלה(. 6

, ניתוח זמן ריצה:.1 אתחול: ) V.O(.2 מיון טופולוגי: ) E. O( V 3. בשלב האחרון עוברים בדיוק פעם אחת על כל קודקוד בגרף ופעם אחת על כל צלע בגרף ולכן ) E. O( V בסך הכל, זמן הריצה הוא ) E. O( V ב. גרף כללי.1 בסעיף זה מותר לנו להשתמש באלגוריתם למציאת רכיבים קשירים היטב בגרף מכוון, ובעובדה שגרף הרכיבים הוא חסר מעגלים. רעיון: נמצא את גרף הרכיבים קשירים היטב של. כעת יהיה לנו גרף חסר מעגלים ונוכל להפעיל את האלגוריתם מהסעיף הקודם )"גרף כללי מיון טופולוגי של גרף הרכיבים קשירים היטב"(, נשים לב שלכל הקדקודים ברכיב קשיר היטב אותו ערך של.best האלגוריתם: נבנה את.2.3.4 גרף הרכיבים קשירים היטב של. נאתחל את השדה rating של כל קדקוד C ב- ל- rating המקסימאלי של קדקודי הרכיב המתאים ב- :. rating( C) max{rating( u): u C} נפעיל את האלגוריתם מסעיף א על, כדי לקבל best(c) לכל רכיב C. לכל רכיב C ולכל u C נבצע best(c).best(u) הסבר על נכונות האלגוריתם: נשים לב כי קבוצת הקדקודים שניתן להגיע אליהם מכל אחד מהקדקודים הנמצאים באותו רכ יב קשיר היטב זהה )אם ניתן להגיע לקודקוד u מקודקוד x, אזי ניתן להגיע לקודקוד u מכל קודקוד y ברכיב של x ע"י שרשור המסלול מ- y ל- x והמסלול מ- x ל- u (. לכן, ערכי ה- best של כל קדקודי רכיב קשיר היטב זהים, ומכיוון שב- הקודם. אתחול שדות ה- rating של קדקודי לסיכום: יש מסלול מקדקוד u1 C 1 אין מעגלים ניתן להפעיל עליו את האלגוריתם מהסעיף מבטיח את קבלת התוצאות הנכונות. לקדקוד u2 C 2 בגרף אם"ם יש מסלול מ- C 2 ל- C 1. best( u ) best( C ) 1 1. לכן ב- ניתוח זמן ריצה:.1 בניית גרף הרכיבים קשרים היטב: ) E. O( V.2 ניתן לעדכן ב- ) V O( את שדות ה- rating ב-..3 הרצת האלגוריתם לגרף חסר מעגלים O( V E ) :.4 סה"כ זמן ריצה: הרכיבים יש לכל היותר V קודקודים ולכל היותר E צלעות(. השמת הערכים עבור קודקודי :.O( V ). O( V E ) )נשים לב כי בגרף 7